package br.com.salao.model;

import java.util.List;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import org.apache.log4j.Logger;

import br.com.salao.entity.FuncionarioServicos;
import br.com.salao.session.ServicosFuncionarioBase;
import br.com.salao.util.Utils;

public class ServicosFuncionarioModel {

	private Logger logger = Logger.getLogger(ServicosFuncionarioModel.class.getName());

	public FuncionarioServicos incluir(FuncionarioServicos funcionarioServicos){
		try {	
			ServicosFuncionarioBase servicosFuncionarioBase = getBean();
			return servicosFuncionarioBase.incluir(funcionarioServicos);
		}catch (Exception e) {
			logger.error(e.getStackTrace() + e.getMessage() + e.getCause());
			return null;
		}
	}

	public List<FuncionarioServicos> buscarServicoPorIdEstabelecimentoEIdFuncionario(int idEstabelecimento, int idFuncionario, int idServico){
		try {	
			ServicosFuncionarioBase servicosFuncionarioBase = getBean();
			return servicosFuncionarioBase.buscarServicoPorIdEstabelecimentoEIdFuncionarioEIdServico(idEstabelecimento, idFuncionario, idServico);
		}catch (Exception e) {
			logger.error(e.getStackTrace() + e.getMessage() + e.getCause());
			return null;
		}
	}

	public List<FuncionarioServicos> buscarServicoPorIdEstabelecimentoEIdFuncionario(int idEstabelecimento, int idFuncionario){
		try {	
			ServicosFuncionarioBase servicosFuncionarioBase = getBean();
			return servicosFuncionarioBase.buscarServicoPorIdEstabelecimentoEIdFuncionario(idEstabelecimento, idFuncionario);		
		}catch (Exception e) {
			logger.error(e.getStackTrace() + e.getMessage() + e.getCause());
			return null;
		}
	}

	public List<FuncionarioServicos> buscarServicoFuncionarioPorIdEstabelecimento(int idEstabelecimento){
		try {	
			ServicosFuncionarioBase servicosFuncionarioBase = getBean();
			return servicosFuncionarioBase.buscarServicoFuncionarioPorIdEstabelecimento(idEstabelecimento);
		}catch (Exception e) {
			logger.error(e.getStackTrace() + e.getMessage() + e.getCause());
			return null;
		}
	}
	
    public ServicosFuncionarioBase getBean() throws Exception {
    	
        Properties prop = Utils.getProperties();     
        Context ctx = new InitialContext(prop); 
        Object ref = ctx.lookup(prop.getProperty("SERVICOSFUNCIONARIO_LOOKUP"));       
      
        return (ServicosFuncionarioBase)PortableRemoteObject.narrow(ref, ServicosFuncionarioBase.class);
    }
}
